package org.example.pingpong.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

@Configuration
public class MailConfig {

    /**
     * 配置 JavaMailSender，用于发送邮件的 Bean 实例。
     * 通过配置邮件服务器的信息，Spring 将使用此 Bean 发送邮件。
     *
     * @return 配置好的 JavaMailSender 实例
     */
    @Bean
    public JavaMailSender javaMailSender() {
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();

        // 配置邮件服务器信息
        mailSender.setHost("smtp.qq.com");  // 设置邮件服务器地址为 QQ 邮箱的 SMTP 服务器
        mailSender.setPort(465);  // 设置端口号，465 是 SMTP 的 SSL 安全端口
        mailSender.setUsername("2920973723@qq.com");  // 设置发送邮箱的用户名（QQ邮箱）
        mailSender.setPassword("nxkxzjfpcvztdfda");  // 设置发送邮箱的授权码（注意这里应该使用授权码而非邮箱密码）

        // 配置 SMTP 设置，包括 SSL 配置和信任的邮件服务器
        mailSender.setJavaMailProperties(new java.util.Properties() {{
            put("mail.smtp.auth", "true");  // 启用 SMTP 身份验证
            put("mail.smtp.ssl.enable", "true");  // 启用 SSL 安全协议
            put("mail.smtp.ssl.trust", "smtp.qq.com");  // 信任 smtp.qq.com，确保安全连接
        }});

        // 返回配置好的 JavaMailSender 实例
        return mailSender;
    }
}
